local HC = Instance.new("Part") HC.Name = "HitboxCheck" HC.Anchored = true HC.Locked = true HC.Transparency = 1 HC.CanCollide = false HC.Size = Vector3.new(20,10,20) HC.Touched:Connect(function() end) local PartA = Instance.new("Part") PartA.Transparency = 1 PartA.CanCollide = false local SA = Instance.new("Sound",PartA) SA.SoundId = "rbxasset://sounds/bass.mp3" SA.PlayOnRemove = true SA.TimePosition = 0.2 local PartB = Instance.new("Part") PartB.Transparency = 1 PartB.CanCollide = false local SB = Instance.new("Sound",PartB) SB.SoundId = "rbxasset://sounds/electronicpingshort.wav" SB.PlayOnRemove = true SB.TimePosition = 0.2 local PartC = Instance.new("Part") PartC.Transparency = 1 PartC.CanCollide = false local SC = Instance.new("Sound",PartC) SC.SoundId = "rbxasset://sounds/snap.mp3" SC.PlayOnRemove = true SC.TimePosition = 0.2 PartA.Anchored = true PartB.Anchored = true PartC.Anchored = true local VisCount = 0 function HitEffect(Pos,Type) spawn(function() VisCount = VisCount + 1 local P = Instance.new("Part",script) P.Name = "HitEffect" P.Material = Enum.Material.Neon P.Position = Pos P.Anchored = true P.Locked = true P.CanCollide = false if Type == 1 then P.BrickColor = BrickColor.new("Neon orange") elseif Type == 2 then P.BrickColor = BrickColor.new("Really red") else P.BrickColor = BrickColor.new("Cyan") end local S = {} if VisCount < 5 then P.Size = Vector3.new(0.5,0.5,0.5)*math.max(1,Type) P.Shape = Enum.PartType.Ball for i = 1,4 do local SE = Instance.new("Part",script) SE.Name = "HitOutEffect" SE.Size = Vector3.new(0.5,0.5,0.05)*math.max(1,Type) SE.Material = Enum.Material.Neon SE.Position = Pos SE.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) SE.Anchored = true SE.Locked = true SE.CanCollide = false if Type == 1 then SE.BrickColor = BrickColor.new("Bright red") elseif Type == 2 then SE.BrickColor = BrickColor.new("New Yeller") else SE.BrickColor = BrickColor.new("Bright blue") end table.insert(S,SE) end for i = 1,3*math.max(1,Type) do P.Size = P.Size + Vector3.new(0.5,0.5,0.5)*math.max(1,Type) for i = 1,#S do S[i].CFrame = S[i].CFrame*CFrame.new(0,0,0.5*math.max(1,Type)) S[i].Size = S[i].Size+Vector3.new(0,0,0.5) end wait(0.05) end for i = 1,2*math.max(1,Type) do P.Transparency = P.Transparency + 0.5/math.max(1,Type) for i = 1,#S do S[i].CFrame = S[i].CFrame*CFrame.new(0,0,0.25*math.max(1,Type)) S[i].Size = S[i].Size-Vector3.new(0,0,0.5) end wait(0.05) end else P.Size = Vector3.new(2.5,2.5,2.5)*math.max(1,Type) P.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) wait(0.05*Type) P.Transparency = 0.3 P.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) if Type == 1 then P.BrickColor = BrickColor.new("Bright red") elseif Type == 2 then P.BrickColor = BrickColor.new("New Yeller") else P.BrickColor = BrickColor.new("Bright blue") end wait(0.05*Type) P.Transparency = 0.6 P.Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360)) if Type == 1 then P.BrickColor = BrickColor.new("Neon orange") elseif Type == 2 then P.BrickColor = BrickColor.new("Really red") else P.BrickColor = BrickColor.new("Cyan") end wait(0.05*Type) end VisCount = VisCount - 1 P:Destroy() for i = 1,#S do S[i]:Destroy() end end) end local SoundCount = 0 function PlayFX(type,pitch,vol,pos) if SoundCount < 30 then local waiter = 0 local Part,Sound if type == "A" then Part,Sound,waiter = PartA,SA,1 elseif type == "B" then Part,Sound,waiter = PartB,SB,0.7 elseif type == "C" then Part,Sound,waiter = PartC,SC,0.4 end Sound.PlaybackSpeed = pitch Sound.Volume = vol Part.Position = pos Part.Parent = script Part.Parent = nil SoundCount = SoundCount + 1 delay(waiter/pitch,function() SoundCount = SoundCount - 1 end) end end function Hurt(pos) spawn(function() PlayFX("C",0.3,0.8,pos) wait(0.05) for i = 1,6 do PlayFX("C",0.6,1-i*0.15,pos) wait(0.05) end end) HitEffect(pos,1) end function Damages(pos) spawn(function() for a = 1,10 do PlayFX("C",0.3,1.5/a,pos) wait(0.05) for i = 1,2 do PlayFX("C",0.75,1.5/a,pos) wait(0.05) end end end) HitEffect(pos,2) end function FireBurst(pos) spawn(function() for i = 1,5 do PlayFX("C",0.2*1.3^i,1.5,pos) wait(0.05) end for i = 1,40 do PlayFX("C",0.1+1/(i/2),1.5-i*0.03,pos) wait(0.05) end end) end function Deflect(pos) spawn(function() PlayFX("C",0.8,1,pos) PlayFX("B",0.8,1.5,pos) wait(0.05) PlayFX("B",1.6,1.5,pos) wait(0.05) for i = 1,4 do PlayFX("B",2.4,1.5-i*0.3,pos) wait(0.05) PlayFX("B",3.2,1.5-i*0.3,pos) wait(0.05) end end) HitEffect(pos,0) end function Swish(pos) spawn(function() for i = 1,3 do PlayFX("C",0.5+i*0.6,0.8,pos) wait(0.05) end for i = 1,3 do PlayFX("C",2.2-i*0.2,0.8-i*0.15,pos) wait(0.05) end end) end function BANG(pos) spawn(function() local M = math.random(100,140)/100 for i = 1,2 do PlayFX("C",0.8*M,1.5,pos) wait(0.04) end for i = 1,10 do PlayFX("C",0.325*M - i * 0.02,1.5,pos) wait(0.04) end end) end function KaSlap(pos) spawn(function() for i = 1,2 do PlayFX("C",0.6,1.5,pos) wait(0.04) end for i = 1,2 do PlayFX("C",1.2,1.5,pos) wait(0.04) end end) end function Collide(pos) spawn(function() for i = 1,3 do PlayFX("C",2,1.5,pos) wait(0.04) end end) end function Light(part) part.Name = "Fire" part.BrickColor = BrickColor.new("Neon orange") part.Material = Enum.Material.Neon local Li = Instance.new("PointLight",part) Li.Color = Color3.new(1,0.5,0) Li.Brightness = 4 Li.Range = 8 Li.Shadows = true local Active = true local function Touched(hit) if hit and hit.Parent then local H = hit.Parent:FindFirstChildWhichIsA("Humanoid") if H and Active then if H:GetState() ~= Enum.HumanoidStateType.Dead and H.Health > 0 then part.BrickColor = BrickColor.new("White") Active = false Hurt(hit.Position) delay(0.5,function() Active = true part.BrickColor = BrickColor.new("Neon orange") end) end H:TakeDamage(34) end end end part.Touched:Connect(Touched) end function Loosen(part) part.Name = "LooseTile" part.BrickColor = BrickColor.new("White") part.Material = Enum.Material.Granite local Active = true local function Touched(hit) if hit and hit.Parent and Active then Active = false Deflect(part.Position) spawn(function() for i = 1,4 do for a = 1,2 do part.BrickColor = BrickColor.new("Black") wait(0.05) part.CFrame = part.CFrame+Vector3.new(0,-(2^(i)/4),0) end end part:Destroy() end) end end part.Touched:Connect(Touched) end function Checkpoint(pos) spawn(function() PlayFX("B",3.6,2,pos) wait(0.12) PlayFX("B",2.64,2,pos) end) end function Yeah(pos) spawn(function() PlayFX("A",3.6,2,pos) wait(0.12) PlayFX("A",2.64,2,pos) end) end local Platform local Lava local Platforms = {} local Prev local Lavan local Loop = 4 local CF local LCF local Streak = 0 local LastName = "(Nobody)" local Reach = false local High = 0 local HighName = "(Nobody)" local Round = 0 local Type = math.random(1,4) function Make() Round = Round + 1 local Stored = Round Reach = false Prev = Platform Loop = Loop + 1 if Loop > 4 then Loop = 1 end if Loop == 1 then CF = CFrame.new(210,5,210,0,0,0,1) elseif Loop == 2 then CF = CFrame.new(290,5,210,0,-1,0,1) elseif Loop == 3 then CF = CFrame.new(290,5,290,0,10000,0,1) else CF = CFrame.new(210,5,290,0,1,0,1) end Lavan = Lava Lava = nil if Streak > 0 then local L = Instance.new("Part",script) L.Anchored = true L.CanCollide = false L.Locked = true L.Name = "Lava" L.Size = Vector3.new(60,2,140) L.BrickColor = BrickColor.new("Bright red") L.Material = Enum.Material.Neon L.CFrame = CF*CFrame.new(0,-5,40) L.Transparency = 1 local Li = Instance.new("SurfaceLight",L) Li.Color = Color3.new(1,0,0) Li.Brightness = 8 Li.Face = Enum.NormalId.Top Li.Range = 10 Li.Shadows = true Lava = L local Active = true local function Contacted(hit) if hit and hit.Parent then local H = hit.Parent:FindFirstChildWhichIsA("Humanoid") if H then if H:GetState() ~= Enum.HumanoidStateType.Dead and H.Health > 0 then if Active then Active = false Damages(hit.Position) FireBurst(hit.Position) delay(0.5,function() Active = true end) end end hit.Parent:BreakJoints() H.Health = 0 H:TakeDamage(99999) end hit:BreakJoints() if not hit.Anchored then hit.Transparency = 0.5 game:GetService("Debris"):AddItem(hit,0.5) end end end L.Touched:Connect(Contacted) end if Lava then for i = 1,4 do for a = 1,2 do wait(0.05) Lava.Transparency = Lava.Transparency - 0.125 end end end if Prev then for i = 1,12 do local Randomization = math.random(1,4) for a = 1,4 do local Pl = Instance.new("Part",script) Pl.Anchored = true Pl.Locked = true Pl.Name = "Floor" Pl.Size = Vector3.new(5,1,5) Pl.BrickColor = BrickColor.new("Dark stone grey") Pl.Material = Enum.Material.Marble Pl.CFrame = LCF*CFrame.new(7.5+i*5,-14.5,-12.5+a*5,0,1,0,1) table.insert(Platforms,Pl) if a == 2 then Swish(Pl.Position) end spawn(function() for i = 1,4 do for a = 1,2 do wait(0.05) Pl.CFrame = Pl.CFrame+Vector3.new(0,(2^(4-i)/2),0) end end end) local Inv = i%2 == 0 if Type == 1 then if (Inv and a%2 == 0) or (not Inv and a%2 == 1) then Light(Pl) end elseif Type == 2 then if Inv then Light(Pl) elseif a == Randomization then Pl.Size = Vector3.new(5,32,5) Pl.Material = Enum.Material.DiamondPlate end elseif Type == 3 then if Inv then Light(Pl) else Loosen(Pl) end elseif Type == 4 then Pl.Material = Enum.Material.SmoothPlastic else Loosen(Pl) end end wait(0.05) end end if Type == 4 and Prev then local Convey = Platforms local Beams = {} for i = 1,#Convey do local A1 = Instance.new("Attachment",Convey[i]) A1.Position = Vector3.new(0,0.6,-2.5) A1.Orientation = Vector3.new(0,0,90) local A2 = Instance.new("Attachment",Convey[i]) A2.Position = Vector3.new(0,0.6,2.5) A2.Orientation = Vector3.new(0,0,90) local Bm = Instance.new("Beam",Convey[i]) Bm.Attachment0 = A1 Bm.Attachment1 = A2 Bm.Texture = "rbxasset://textures/StudioToolbox/AssetPreview/vote_up.png" Bm.LightEmission = 0.5 Bm.TextureSpeed = 0 Bm.Width0 = 5 Bm.Width1 = 5 Bm.Enabled = false table.insert(Beams,Bm) end spawn(function() while Stored == Round do Collide((CF*CFrame.new(0,0,40)).Position) local Sped = {} local OriginalColors = {} for i = 1,#Convey do Convey[i].Velocity = Vector3.new() local Choice = math.random(1,6) if Choice == 1 then Convey[i].CFrame = CFrame.new(Convey[i].Position,Convey[i].Position+CF.LookVector) Convey[i].BrickColor = BrickColor.new("Bright green") Beams[i].Color = ColorSequence.new(Color3.new(0.4,1,0.7)) elseif Choice == 2 then Convey[i].CFrame = CFrame.new(Convey[i].Position,Convey[i].Position-CF.LookVector) Convey[i].BrickColor = BrickColor.new("Bright violet") Beams[i].Color = ColorSequence.new(Color3.new(0.7,0.4,1)) elseif Choice == 3 then Convey[i].CFrame = CFrame.new(Convey[i].Position,Convey[i].Position-CF.RightVector) Convey[i].BrickColor = BrickColor.new("Bright blue") Beams[i].Color = ColorSequence.new(Color3.new(0.4,0.7,1)) elseif Choice == 4 then Convey[i].CFrame = CFrame.new(Convey[i].Position,Convey[i].Position+CF.RightVector) Convey[i].BrickColor = BrickColor.new("Bright yellow") Beams[i].Color = ColorSequence.new(Color3.new(1,1,0.7)) elseif Choice == 5 then Convey[i].CFrame = CFrame.new(Convey[i].Position,Convey[i].Position-CF.RightVector) Convey[i].BrickColor = BrickColor.new("Bright red") Beams[i].Color = ColorSequence.new(Color3.new(1,0.4,0.4)) else Convey[i].CFrame = CFrame.new(Convey[i].Position,Convey[i].Position+CF.RightVector) Convey[i].BrickColor = BrickColor.new("Bright red") Beams[i].Color = ColorSequence.new(Color3.new(1,0.4,0.4)) end table.insert(OriginalColors,Convey[i].BrickColor) if Choice < 5 then table.insert(Sped,1) else table.insert(Sped,2) end Beams[i].TextureSpeed = 0 Beams[i].Enabled = true end for i = 1,10 do if i%2 == 1 then for a = 1,#Convey do Convey[a].Material = Enum.Material.Neon end else for a = 1,#Convey do Convey[a].Material = Enum.Material.SmoothPlastic end end wait(0.05) if Stored ~= Round then break end end KaSlap((CF*CFrame.new(0,0,40)).Position) for i = 1,#Convey do if Sped[i] == 1 then Convey[i].Velocity = Convey[i].CFrame.LookVector*25 Beams[i].TextureSpeed = -5 Convey[i].CustomPhysicalProperties = PhysicalProperties.new(Enum.Material.SmoothPlastic) else Convey[i].Velocity = Convey[i].CFrame.LookVector*200000 Beams[i].TextureSpeed = -40000 Convey[i].CustomPhysicalProperties = PhysicalProperties.new(0.7,2,0.5,100,1) end end for i = 1,40 do PlayFX("A",math.min(1.4,0.8+i*0.05),0.7,(CF*CFrame.new(0,0,40)).Position) wait(0.05) if Stored ~= Round then break end end if Stored == Round then for i = 1,10 do PlayFX("A",1.4,0.7,(CF*CFrame.new(0,0,40)).Position) if i%2 == 1 then PlayFX("B",2,1,(CF*CFrame.new(0,0,40)).Position) for a = 1,#Convey do Convey[a].BrickColor = BrickColor.new("White") Convey[a].Material = Enum.Material.Neon end else for a = 1,#Convey do Convey[a].BrickColor = OriginalColors[a] Convey[a].Material = Enum.Material.SmoothPlastic end end wait(0.05) if Stored ~= Round then break end end end end end) end local P = Instance.new("Part",script) P.Anchored = true P.Locked = true P.Name = "Check" P.Size = Vector3.new(20,2,20) P.BrickColor = BrickColor.new("Light blue") P.Material = Enum.Material.Slate P.CFrame = CF+Vector3.new(0,-15,0) Swish(P.Position) local Bill = Instance.new("BillboardGui",P) Bill.Size = UDim2.new(15,0,2,0) Bill.LightInfluence = 0.25 Bill.StudsOffset = Vector3.new(0,6,0) Bill.Adornee = P TextB = Instance.new("TextBox",Bill) TextB.AnchorPoint = Vector2.new(0.5,0.5) TextB.Position = UDim2.new(0.5,0,0.5,0) TextB.Size = UDim2.new(1,0,1,0) TextB.BackgroundTransparency = 1 TextB.TextStrokeTransparency = 0 TextB.TextScaled = true TextB.Font = Enum.Font.Fantasy TextB.TextColor3 = Color3.new(1,1,1) TextB.TextStrokeColor3 = Color3.new() TextB.TextTransparency = 0 if not Prev then TextB.Text = "" else TextB.Text = Streak+1 end Platform = P for i = 1,4 do for a = 1,2 do wait(0.05) P.CFrame = P.CFrame+Vector3.new(0,(2^(4-i)/2),0) end end if Lavan then for i = 1,8 do wait(0.05) Lavan.Transparency = Lavan.Transparency + 0.125 end Lavan:Destroy() end local Ready = false local function Trigger(char,plr) Streak = Streak + 1 Reach = true P.BrickColor = BrickColor.new("Bright green") TextB.TextStrokeColor3 = Color3.new(0,1,0) local Use = char.Name if plr and char.Name ~= plr.Name then Use = '"'..char.Name..'" <'..plr.Name..'>' end LastName = Use if plr then TextB.Text = char.Name.." reached checkpoint "..Streak.."!" if plr.Neutral then spawn(function() local BC = game:GetService("Players"):GetCharacterAppearanceAsync(plr.UserId):FindFirstChildWhichIsA("BodyColors") TextB.TextColor3 = BC.TorsoColor3 P.BrickColor = BC.TorsoColor end) else TextB.TextColor3 = plr.TeamColor.Color P.BrickColor = plr.TeamColor end else TextB.Text = char.Name.." reached checkpoint "..Streak.."...?" end Checkpoint(P.Position) if Streak > High then High = Streak HighName = Use Yeah(P.Position) end end local function Contacted(hit) if not Reach and hit and hit.Parent and hit.Parent.ClassName == "Model" then local H = hit.Parent:FindFirstChildWhichIsA("Humanoid") if not H or (H:GetState() ~= Enum.HumanoidStateType.Dead and H.Health > 0 and H.MaxHealth < 1000 and H.Parent:FindFirstChildWhichIsA("ForceField") == nil) then if Ready then Trigger(hit.Parent,game:GetService("Players"):GetPlayerFromCharacter(hit.Parent)) end end end end P.Touched:Connect(Contacted) local function Check() HC.CFrame = P.CFrame+Vector3.new(0,11,0) HC.Parent = script local B = HC:GetTouchingParts() HC.Parent = nil for i = 1,#B do Contacted(B[i]) end end spawn(function() while P.Parent do wait(0.1) Check() end end) if Prev then local Waiter = 20 if Streak < 10 then wait(2) Waiter = 40 end Ready = true if Streak < 40 then for i = 1,Waiter do if Reach then break end wait(0.125) end end for i = 1,30 do PlayFX("C",0.6,math.min(i * 0.02,1),Prev.Position) if i%2 == 0 then Prev.CFrame = Prev.CFrame+Vector3.new(0,-0.1*i,0) else Prev.CFrame = Prev.CFrame+Vector3.new(0,0.1*i,0) end wait(0.04) end BANG(Prev.Position) HitEffect(Prev.Position,2) for i = 1,2 do for a = 1,4 do Prev.BrickColor = BrickColor.new("Black") wait(0.05) Prev.CFrame = Prev.CFrame+Vector3.new(0,-(4^(i)/4),0) end end Prev:Destroy() end local Count = 0 for i = 1,#Platforms do Count = Count + 1 if Count >= 4 then Count = 0 end local Plat = Platforms[i] if Plat.Parent then Hurt(Plat.Position) end spawn(function() for i = 1,4 do for a = 1,2 do Plat.BrickColor = BrickColor.new("Black") wait(0.05) Plat.CFrame = Plat.CFrame+Vector3.new(0,-(2^(i)/4),0) end end Plat:Destroy() end) if Count == 0 or (not Reach and (Streak < 20 or (Streak < 40 and Count%2 == 0))) then wait(0.3) end end wait(0.5) Type = math.random(1,5) if not Reach then Streak = 0 LastName = "(Nobody)" elseif Streak == 10 then TextB.Text = "Faster! Faster!" wait(2) elseif Streak == 20 then TextB.Text = "Even quicker!" wait(2) elseif Streak == 40 then TextB.Text = "RUSH IN!!!" wait(2) end local Course = "Run!" if Type == 1 then Course = "Checkerboard Basics" elseif Type == 2 then Course = "Wall Hopping" elseif Type == 3 then Course = "Fast Jumping" elseif Type == 4 then Course = "JJK83's Special Conveyors" end TextB.Text = [[Horrible Loophole Course: ]]..Course.." ("..Type..[[) Runner: ]]..LastName.." ("..Streak..[[) High: ]]..HighName.." ("..High..") " Ready = false Platforms = {} LCF = CF Make() end Make()